/*
* 后台 - 全局JS
*
* Copyright 2010, vincent
* Date: 2010-06-04 16:19
*/


// 左侧菜单折叠效果
$(function() {
	$(".Sidebar_menu dl dd").hide();
	$(".Sidebar_menu dl dt.on").next().show();
	var dt = $(".Sidebar_menu dl dt");
	dt.click(function() {
		if($(this).next().is(":hidden")) {
			$(this).next().show();
			$(this).addClass("on");
		} else {
			$(this).next().hide();
			$(this).removeClass("on");
		}
	});
});

// 显示隐藏左侧菜单
$(function() {
	var hideMenu = $("#hideMenu");
	var Sidebar = $(".Sidebar");
	var main = $(".main");
	hideMenu.click(function() {
		if(Sidebar.is(":visible")) {
			Sidebar.fadeOut();
			main.css("margin-left","0px");
			$(this).text("显示左栏");
		} else {
			Sidebar.fadeIn("slow");
			main.css("margin-left","210px");
			$(this).text("隐藏左栏");
		}
	});
});

$(function() {
	// 表格变色
	$(".tableA tr:even").addClass("trbgA");
	$(".tableB tr").hover(
	function() {
		$(this).addClass("trbgB");
	}, function() {
		$(this).removeClass("trbgB");
	}
	);
	// 弹出框
	$('#popBox').hide();
	var wrapW= $('.content').width();
	var LW= (wrapW - 510) / 2;
	$('#openBox').click(function() {
		$('#popBox').fadeIn();
		$('#popBox').css('left', LW);
	});
	$('#closePopBox').click(function() {
		$('#popBox').fadeOut();
	});
});


/**
* 复选框全选
* @example
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="1">
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="2" checked>
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="3">
*
*			<input type="checkbox" id="checkAll" name="checkAll" onclick="checkAllBoxes_1('checkbox[]');">全选
*
* @param string cbs_id 复选框id
* @return
*/
function checkAllBoxes_1(cbs_id) {
	var ifChecked = $('input[type="checkbox"][id="checkAll"]').attr('checked');
	$.each($('input[type="checkbox"][id="' + cbs_id + '"]'), function() {
		$(this).attr('checked', ifChecked);
	});
};


/**
* 复选框全选
* @example
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="1">
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="2" checked>
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="3">
*
*			<a href="javascript:void(0);" onclick="checkAllBoxes_2('checkbox[]'); return false;">全选</a>
*
* @param string cbs_id 复选框id
* @return
*/
function checkAllBoxes_2(cbs_id) {
	var uncheckedBox = 0;
	// 全选所有复选框
	$.each($('input[type="checkbox"][id="' + cbs_id + '"]'), function() {
		if($(this).attr('checked') == false) {
			$(this).attr('checked', true);
			uncheckedBox = 1;
		}
	});

	// 如果所有复选框都已被选择,则全部取消选择
	if(uncheckedBox == 0) {
		$.each($('input[type="checkbox"][id="' + cbs_id + '"]'), function() {
			$(this).attr('checked', false);
		});
	}
};


/**
* 复选框反选
* @example
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="1">
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="2" checked>
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="3" checked>
*
*			<a href="javascript:void(0);" onclick="checkInverseBoxes('checkbox[]'); return false;">反选</a>
*
* @param string cbs_id 复选框id
* @return
*/
function checkInverseBoxes(cbs_id) {
	$.each($('input[type="checkbox"][id="' + cbs_id + '"]'), function() {
		$(this).attr('checked', $(this).attr('checked') ? false : true);
	});
};


/**
* 复选框选择(根据复选框的值 选中复选框)
* @example
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="1">
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="2">
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="3">
*
*			<a href="javascript:void(0);" onclick="checkBoxes('checkbox[]', '2,3'); return false;">复选框选择</a>
*
* @param string cbs_ids 复选框id
* @param string cbs_values 要选择的复选框的值,以半角逗号隔开
* @return
*/
function checkBoxes(cbs_id, cbs_values) {
	$.each($('input[type="checkbox"][id="' + cbs_id + '"]'), function() {
		$(this).attr('checked', false);
	});
	$.each(cbs_values.split(','), function(i, n) {
		$('input[type="checkbox"][id="' + cbs_id + '"][value="' + n + '"]').attr('checked', true);
	});
};


/**
* 单选框选择(根据单选框的值 选中单选框)
* @example
*			<input type="radio" id="type" name="type" value="1">
*			<input type="radio" id="type" name="type" value="2">
*			<input type="radio" id="type" name="type" value="3">
*
*			<a href="javascript:void(0);" onclick="checkRadio('type', '2'); return false;">单选框选择</a>
*
* @param string r_id 单选框id
* @param string r_value 要选择的单选框的值
* @return
*/
function checkRadio(r_id, r_value) {
	$('input[type="radio"][id="' + r_id + '"][value="' + r_value + '"]').attr('checked', true);
};


/**
* 下拉框选择(根据下拉框的值 选中下拉框)
* @example
*			<select id="city" name="city">
*			<option value='1'>北京</option>
*			<option value='2'>天津</option>
*			<option value='3'>上海</option>
*			</select>
*
*			<a href="javascript:void(0);" onclick="checkSelect('city', '2'); return false;">下拉框选择</a>
*
* @param string r_id 下拉框id
* @param string r_value 要选择的下拉框的值
* @return
*/
function checkSelect(s_id, s_value) {
	$('select[id="' + s_id + '"] option[value="' + s_value + '"]').attr('selected', true);
};


/**
* 获取复选框选中项的值,以逗号隔开
* @example
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="1">
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="2" checked>
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="3" checked>
*
*			<a href="javascript:void(0);" onclick="alert(getCheckedValue('checkbox[]')); return false;">复选框选择</a>
*
* @param string cbs_ids 复选框id
* @param string cbs_values 要选择的复选框的值,以半角逗号隔开
* @return
*/
function getCheckedValue(cbs_id) {
	var values = '';
	$.each($('input[name="' + cbs_id + '"]:checked'), function() {
		values = values + ',' + $(this).attr('value');
	});
	return values.slice(1);
};

/**
* 获取复选框选中项的TEXT值,以逗号隔开
* @example
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="1">
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="2" checked>
*			<input type="checkbox" id="checkbox[]" name="checkbox[]" value="3" checked>
*
*			<a href="javascript:void(0);" onclick="alert(getCheckedValue('checkbox[]')); return false;">复选框选择</a>
*
* @param string cbs_ids 复选框id
* @param string cbs_values 要选择的复选框的值,以半角逗号隔开
* @return
*/
function getCheckedText(cbs_id) {
	var values = '';
	$.each($('input[name="' + cbs_id + '"]:checked'), function() {
		values = values + $(this).attr('title');
	});
	return values;
};
/**
* 获取下拉框选中项的值
* @example
*			<select id="city" name="city">
*			<option value='1'>北京</option>
*			<option value='2'>天津</option>
*			<option value='3'>上海</option>
*			</select>
*
* @param string s_id 下拉框id
* @param string selected_value 要选择的下拉框的值
* @return string
*/
function getSelectedText(s_id) {
	var value = ''
	if($('select[id="' + s_id + '"] option:selected').attr('value') != ''){
		value = $('select[id="' + s_id + '"] option:selected').text();
	}
	return value;
};

/**
* 删除操作确认
* @example
*			<a href="javascript:void(0);" onclick="confirmDelete('确认删除\"二年级\"么?', '/grades/delete/2/'); return false;">删除</a>
*
* @param string msg 提示文字
* @param string url 确认后要跳转的URL地址
* @return
*/
function confirmDelete(msg, url) {
	if(confirm(msg)) {
		window.location.href = url;
	}
};

/**
* 当点击复选框时，把复选框的值添加或删除到cookie,并在分页时把选中的checkbox值选中
*
* @param string id table ID
* @param string name 存在COOKIE中的KEY值例如cookie[name] = ',2,3,4,5,'
*/
function tableCheckbox(tableid, name){
	if(name==''){name = 'checkvalue';}
	//cookie中存放的值
	var cookievalue = $.cookie(name);
	if(cookievalue==null){
		cookievalue = ',';
	}
	$.each($('table[id='+tableid+'] tr input[type="checkbox"]'),function (){
		var indexof = cookievalue.indexOf(','+$(this).val()+',')
		if(indexof>=0){
			$(this).attr('checked',true);
		}
	});

	$('table[id='+tableid+'] tr input[type="checkbox"]').click(function(){
		//点击checkbox的值
		var checkedvalue = $(this).val();
		//方便搜素特殊处理的值
		//var searchvalue = ','+$.cookie(name);
		//如果checkbox为选中状态
		if($(this).attr('checked') === true){
			//查找选中checkbox值在cookie中是否存在
			var indexof = cookievalue.indexOf(','+checkedvalue+',')
			//如果在cookie中没有找到对应的值则把当前checkbox写入cookie
			if(indexof == -1){
				//将指定的值添加到cookie中
				cookievalue = cookievalue+checkedvalue+',';
			}
			$.cookie(name, cookievalue, { path: '/', expires: 0 });
		}
		//如果checkbox为未选中状态
		if($(this).attr('checked') === false){
			//查找选中checkbox值在cookie中是否存在
			var indexof = cookievalue.indexOf(','+checkedvalue+',')
			//如果在cookie中没有找到对应的值则把当前checkbox写入cookie
			if(indexof >=0 ){
				//删除cookie中指定的值
				cookievalue = cookievalue.replace(','+checkedvalue+',' , ',');

			}
			$.cookie(name, cookievalue, { path: '/', expires: 0 });
		}
	});
}




// 生成随机字符串
function generateMixed(n) {
	var chars = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
    var res = "";
    for(var i = 0; i < n ; i ++) {
        var id = Math.ceil(Math.random() * 35);
        res += chars[id];
    }
    return res;
};
